package com.vcc.data.entity;


import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.vcc.data.base.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 钱包明细
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Setter
@Getter
@Table(value = "vcc_wallet_detail")
public class WalletDetail extends BaseEntity implements Serializable {

    @Column(comment = "订单号", value = "order_id")
    private String orderId;

    @Column(comment = "卡号", value = "card_number")
    private String cardNumber;

    @Column(comment = "用户卡Id", value = "user_card_id")
    private Long userCardId;

    @Column(comment = "渠道", value = "channel")
    private String channel;

    @Column(comment = "卡品ID", value = "card_type_id")
    private Long cardTypeId;

    /**
     * 用途 0 开卡手续费 1 卡充值 2 卡转出 3 账户充值 4 账户转出 5 销卡转入 6 卡充值手续费 14 授权撤销  15  退款 16 账户调账 20 卡调账 21 转入 22 转出
     */
    @Column(comment = "用途", value = "use_flag")
    private Integer useFlag;


    @Column(comment = "备注", value = "remark")
    private String remark;


    @Column(comment = "请求IP", value = "request_ip")
    private String requestIp;

    @Column(comment = "金额", value = "amount")
    private BigDecimal amount;

    @Column(comment = "钱包余额", value = "wallet_amount")
    private BigDecimal walletAmount;

    @Column(comment = "币种ID", value = "currency_id")
    private Long currencyId;

    @Column(comment = "所属用户", value = "user_id")
    private Long userId;

    @Column(comment = "操作用户ID", value = "operation_user_id")
    private Long operationUserId;

    @Column(comment = "请求时间", value = "request_date")
    private Date requestDate;

    @Column(comment = "是否为入账", value = "has_transfer_in")
    private Boolean hasTransferIn;
}
